package com.wrupple.muba.catalogs.client.cms.service;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.TakesValue;
import com.wrupple.muba.catalogs.client.activity.process.CatalogEditingProcess;
import com.wrupple.muba.catalogs.client.activity.process.CatalogSelectionProcess;
import com.wrupple.muba.catalogs.client.activity.process.task.CatalogInteractionState.Mode;

public interface CatalogManager<T extends JavaScriptObject> {
	
	
	String getManagedCatalog();
	
	CatalogSelectionProcess<T> getSelectionProcess(boolean allowMultiple);
	
	CatalogEditingProcess<T> getEditingProcess(Mode mode,EventBus bus);

	TakesValue<T> getUserTransaction(String transactionType,JavaScriptObject transactionDescriptor, EventBus bus);
}
